The background description provided herein is for the purpose of generally presenting the context of the disclosure. Work of the presently named inventors, to the extent the work is described in this background section, as well as aspects of the description that may not otherwise qualify as prior art at the time of filing, are neither expressly nor impliedly admitted as prior art against the present disclosure.
A small computer systems interface (“SCSI”) allows a computer to communicate with peripheral devices, such as disk drives, tape drives, compact disc-read only memory (CD-ROM) drives, printers and scanners. A serial attached SCSI (SAS) interface interconnects a network of storage devices with processing devices. A SAS interface includes storage devices that manage concurrent data transfer routines to one or more independent (distinct) initiators.
An initiator may be a port of, for example, a workstation, a server, and/or a computer. An initiator may determine a topology of devices in a network (e.g., discover other storage and processing devices). Once the topology is determined the initiator may establish contacts with a SAS interface module. The SAS interface module manages a world wide name (“WWN”) table. The WWN table includes identification information for each initiator.
In FIG. 1, a network system 10 is shown that includes one or more initiators 12-1, 12-2, . . . , 12-X (collectively initiators 12). The initiators include respective initiator memory modules 13-1, 13-2, . . . , 13-X. The initiators 12 may be connected to a SAS module 14 via an expander 16. The expander 16 may be an input/output control device that receives and routes data packets.
In operation, for example, the initiator 12-1 may issue an “open” request (i.e., a SAS OPEN address frame) to establish or reestablish a connection with the SAS module 14. The SAS module 14 may establish or re-establish the connection using and updating information associated with the initiator and stored in a WWN table.
A SAS module 14 may include a serializer/deserializer (SERDES) 20 that (i) converts serial data from the initiator 12 or expander 16 to parallel data and (ii) parallel data from a link module 22 of a port 23 to serial data. The link module 22 includes link memory 24 with a WWN table 25 of WWN address registers 26-1, 26-2, . . . , 26-Y (collectively registers 26). The WWN table 25 may have a fixed size that is limited. The link module 22 services initiator connection requests by storing and/or accessing source and destination WWN SAS addresses in the WWN address registers 26. The link module 22 manages concurrent connection requests for a limited number of WWN table entries (e.g., 8, 16 or 32 entries). If the internal WWN table is full, the link module 22 rejects additional connection requests until space is available.
In FIG. 2, another network system 10′ is shown and includes the initiators 12 with the memory modules 13. The initiators 12 are connected to a SAS module 14′ via an expander 16. The SAS module 14′ includes the SERDES 20 and a port 23′. The port 23′ includes a link module 22′ with link memory 24′ and a control module 32. The link memory 24′ stores a first WWN table 25′. The control module 32 includes program code memory 34 that stores a second WWN table 36.
If the first WWN table 25′ is full, the link module 22′ may manage and queue additional entries using the program code memory 34 within the control module 32. The control module 32 allocates memory space to store the additional entries in the second WWN table 36. Managing multiple WWN tables at separate locations slows connection request response time of the link module 22.